home *** CD-ROM | disk | FTP | other *** search
/ NeXTSTEP 3.3 (Developer)…68k, x86, SPARC, PA-RISC] / NeXTSTEP 3.3 Dev Intel.iso / NextDeveloper / Source / GNU / emacs / oldXMenu / ChgPane.c < prev    next >
C/C++ Source or Header  |  1991-11-16  |  1KB  |  67 lines

  1. #include "copyright.h"
  2.  
  3. /* $Header: ChgPane.c,v 1.3 87/12/20 12:04:05 rws Exp $ */
  4. /* Copyright    Massachusetts Institute of Technology    1985    */
  5.  
  6. /*
  7.  * XMenu:    MIT Project Athena, X Window system menu package
  8.  *
  9.  *    XMenuChangePane - Change the label of a  menu pane.
  10.  *
  11.  *    Author:        Tony Della Fera, DEC
  12.  *            December 19, 1985
  13.  *
  14.  */
  15.  
  16. #include "XMenuInt.h"
  17.  
  18. int
  19. XMenuChangePane(menu, p_num, label)
  20.     register XMenu *menu;    /* Menu object to be modified. */
  21.     register int p_num;        /* Pane number to be modified. */
  22.     char *label;        /* Selection label. */
  23. {
  24.     register XMPane *p_ptr;    /* XMPane pointer. */
  25.  
  26.     int label_length;        /* Label lenght in characters. */
  27.     int label_width;        /* Label width in pixels. */
  28.  
  29.     /*
  30.      * Check for NULL pointers!
  31.      */
  32.     if (label == NULL) {
  33.     _XMErrorCode = XME_ARG_BOUNDS;
  34.     return(XM_FAILURE);
  35.     }
  36.  
  37.     /*
  38.      * Find the right pane.
  39.      */
  40.     p_ptr = _XMGetPanePtr(menu, p_num);
  41.     if (p_ptr == NULL) return(XM_FAILURE);
  42.  
  43.     /*
  44.      * Determine label size.
  45.      */
  46.     label_length = strlen(label);
  47.     label_width = XTextWidth(menu->p_fnt_info, label, label_length);
  48.  
  49.     /*
  50.      * Change the pane data.
  51.      */
  52.     p_ptr->label = label;
  53.     p_ptr->label_width = label_width;
  54.     p_ptr->label_length = label_length;
  55.  
  56.     /*
  57.      * Schedule a recompute.
  58.      */
  59.     menu->recompute = 1;
  60.  
  61.     /*
  62.      * Return the pane number just changed.
  63.      */
  64.     _XMErrorCode = XME_NO_ERROR;
  65.     return(p_num);
  66. }
  67.